home *** CD-ROM | disk | FTP | other *** search
-
-
- struct timer *timer_next = NULL;/* timer we expect to run down next */
- TIME time_timer_set; /* time when physical timer was set */
-
- void timers_update(); /* see discussion below */
-
- void
- timer_undeclare(t)
- struct timer *t;
- {
- disable_interrupts();
- if (!t->inuse) return;
- t->inuse = FALSE;
-
- /* check if we were waiting on this one */
- if (t == timer_next) {
- timers_update(time_now - time_timer_set);
- if (timer_next) {
- start_physical_timer(timer_next->time);
- time_timer_set = time_now;
- }
- }
- enable_interrupts();
- }
-
- Listing 3
-
-